package com.demandbreakdown.xiyun.model.entity;

import com.baomidou.mybatisplus.annotation.*;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.time.LocalDateTime;

/**
 * 空间实体类
 *
 * @author poxz
 */
@TableName("space")
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class Space {
    /**
     * 空间ID
     */
    @TableId(type = IdType.AUTO)
    private Long id;

    /**
     * 创建用户ID
     */
    private Long userId;

    /**
     * 空间名称
     */
    private String spaceName;

    /**
     * 空间描述
     */
    private String spaceDesc;

    /**
     * 空间类型：0-私有空间，1-团队空间
     */
    private Integer spaceType;

    /**
     * 空间级别：0-普通版，1-高级版，2-至尊版
     */
    private Integer spaceLevel;

    /**
     * 空间封面图URL
     */
    private String coverUrl;

    /**
     * 最大图片数量
     */
    private Integer maxPictureCount;

    /**
     * 最大存储空间（字节）
     */
    private Long maxStorageSize;

    /**
     * 邀请码（团队空间专用）
     */
    private String inviteCode;

    /**
     * 成员上限
     */
    private Integer memberLimit;

    /**
     * 创建时间
     */
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTime;

    /**
     * 编辑时间
     */
    private LocalDateTime editTime;

    /**
     * 更新时间
     */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;

    /**
     * 逻辑删除：0-未删除，1-已删除
     */
    @TableLogic
    @TableField("is_delete")
    private Integer isDelete;
}